package com.uade.xml;

import org.apache.log4j.Logger;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import com.uade.model.Respuesta;

public class RespuestaHandler extends DefaultHandler {

	private static Logger log = Logger.getLogger(RespuestaHandler.class);

	private Respuesta respuesta = null;

	boolean bestado = false;
	boolean bmensaje = false;

	String sestado = null;
	String smensaje = null;

	@Override
	public void startElement(String uri, String localName, String qName,
			Attributes attributes) throws SAXException {

		if (qName.equalsIgnoreCase("resultado")) {
			log.debug("Se parsea el resultado obtenido de la repsuesta del servicio");
		}

		if (qName.equalsIgnoreCase("estado")) {
			bestado = true;
		}

		if (qName.equalsIgnoreCase("mensaje")) {
			bmensaje = true;
		}
	}

	@Override
	public void endElement(String uri, String localName, String qName)
			throws SAXException {
		if (qName.equalsIgnoreCase("resultado")) {

			respuesta = new Respuesta();
			respuesta.setEstado(sestado);
			respuesta.setMensaje(smensaje);
		}
	}

	@Override
	public void characters(char ch[], int start, int length)
			throws SAXException {

		if (bestado) {
			bestado = false;
			sestado = new String(ch, start, length);
			log.debug("Estado : " + sestado);
		}
		if (bmensaje) {
			bmensaje = false;
			smensaje = new String(ch, start, length);
			log.debug("Mensaje : " + smensaje);

		}

	}

	public Respuesta getRespuesta() {
		return respuesta;
	}

	public void setRespuesta(Respuesta respuesta) {
		this.respuesta = respuesta;
	}

}